home *** CD-ROM | disk | FTP | other *** search
/ PCMania 18 / PCMania CD18.nrg / magia18 / mandel.bas
Encoding:
BASIC Source File  |  1994-03-01  |  2.2 KB  |  65 lines

  1. 'Este programa obtiene la función de Mandelbrot
  2.  
  3. SCREEN 12
  4.  
  5. 'Constantes
  6. nph% = 480 'Número de pixels horizontales
  7. npv% = 480 'Número de pixels verticales
  8.  
  9. 'Se introducen variables
  10. INPUT "Primera coordenada horizontal"; x1!
  11. INPUT "Segunda coordenada horizontal"; x2!
  12. INPUT "Primera coordenada vertical"; y1!
  13. INPUT "Segunda coordenada vertical"; y2!
  14.  
  15. CLS
  16.  
  17. 'Se selecciona la porción a mostrar según las coordenadas introducidas
  18. vanox! = (x2! - x1!) / nph%
  19. vanoy! = (y2! - y1!) / npv%
  20. a! = x1!
  21.  
  22. FOR k% = 1 TO nph%
  23.         a! = a! + vanox!
  24.         b! = y2!
  25.         FOR j% = 1 TO npv%
  26.                 b! = b! - vanoy!
  27.                 x! = 0
  28.                 y! = 0
  29.                 n% = 0
  30.                 DO WHILE (n% < 100) AND (x! * x! + y! * y! < 4)
  31.                         xx! = x! * x! - y! * y! + a!  'El bucle principal,
  32.                         y! = 2 * x! * y! + b!         'donde se calcula que
  33.                         x! = xx!                      'puntos escapan y
  34.                         n% = n% + 1                   'cuales quedan confinados
  35.                 LOOP
  36.                 IF n% < 3.5 THEN
  37.                         cpunto% = 11  'Se seleccionan
  38.                 ELSEIF n% < 5 THEN
  39.                         cpunto% = 9   'los colores de
  40.                 ELSEIF n% < 6 THEN
  41.                         cpunto% = 1   'cada punto
  42.                 ELSEIF n% < 9 THEN
  43.                         cpunto% = 13  'según el valor
  44.                 ELSEIF n% < 15 THEN
  45.                         cpunto% = 5   'que toma n
  46.                 ELSEIF n% < 20 THEN
  47.                         cpunto% = 4   'al salir del
  48.                 ELSEIF n% < 26 THEN
  49.                         cpunto% = 12  'bucle. Los colores
  50.                 ELSEIF n% < 35 THEN
  51.                         cpunto% = 2   'se pueden modificar
  52.                 ELSEIF n% < 45 THEN
  53.                         cpunto% = 14  'a gusto de
  54.                 ELSEIF n% < 60 THEN
  55.                         cpunto% = 7   'cada cual
  56.                 ELSE cpunto% = 8
  57.                 END IF
  58.                
  59.                 'Se imprime cada punto
  60.                 IF x! * x! + y! * y! > 4 THEN PSET (k%, j%), cpunto%
  61.         NEXT
  62. NEXT
  63.  
  64.  
  65.